<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./templates/templateMenu.xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:h="http://java.sun.com/jsf/html">

    <ui:define name="content">
        <script type="text/javascript"> 
            function confirmFunction(opcion) {
                switch(opcion){
                    case 0: updateConfirmProbSalud.jq.click();
                        break;
                    case 1: updateConfirmAlumnos.jq.click();
                        break;
                    case 2: updateConfirmModificar.jq.click();
                        break;
                    case 4: updateConfirmModificarMatricula.jq.click();
                        break;
                    case 5: updateConfirmMatricula.jq.click();
                        break;
                    case 7: updateConfirmGuardar.jq.click();
                        break;
                }
            }
        </script>
        <p:panel header="Inscripcion de Alumnos" >                                                   
            <p:dataTable var="varAlumno"
                         id="dtAlumno" 
                         widgetVar="dtAlumno"                                        
                         value="#{inscripcionBean.alumnos}" 
                         onRowEditUpdate="msg">
                <f:facet name="header">  
                    <h:panelGrid columnClasses="alignLeft,alignLeft,alignLeft" 
                                 id="frmListaAlumnos" 
                                 style="width:500px" 
                                 columns="2">                       
                        <p:commandButton value="Agregar Nuevo Alumno" 
                                         image="ui-icon ui-icon-circle-plus"
                                         id="cmdNuevoAlumno"
                                         process="@this"
                                         action="#{inscripcionBean.nuevoAlumno}"
                                         update="opNext frmAlumno frmProbSalud frmSacramentos dtProbSalud"
                                         oncomplete="agregarAlumno.show()" 
                                         type="push"/>                                                        
                    </h:panelGrid>
                </f:facet>  

                <p:column headerText="Numero NIE" style="width: 25px; text-align: center;">
                    <h:outputText value="#{varAlumno[0].nuNie}"/>
                </p:column>

                <p:column headerText="Alumno" style="text-align: center;">
                    <h:outputText value="#{varAlumno[1].vcNombres} #{varAlumno[1].vcApellidos}"/>
                </p:column>

                <p:column headerText="Fecha de Nacimiento" style="text-align: center;" >
                    <h:outputText value="#{inscripcionBean.getStringDate(varAlumno[1].daFecNacimiento)}"/>
                </p:column>

                <p:column headerText="Institución de Procedencia" style="text-align: center;" >
                    <h:outputText value="#{varAlumno[0].vcInstProcedencia}"/>
                </p:column>

                <p:column headerText="Acciones" style="text-align: center; width: 75px;">
                    <p:commandButton  image="ui-icon-pencil" 
                                      title="Modificar Alumno"
                                      action="#{inscripcionBean.editAlumno}" 
                                      update="dtProbSalud frmAlumno frmProbSalud frmSacramentos"
                                      oncomplete="agregarAlumno.show(); confirmFunction(2);"
                                      process="@this">  
                        <f:setPropertyActionListener value="#{varAlumno}" target="#{inscripcionBean.selectedAlumno}" />
                    </p:commandButton>  
                    <p:commandButton  image="ui-icon-trash"
                                      title="Eliminar Alumno"
                                      action="#{inscripcionBean.removeAlumno}" 
                                      update="frmAlumno frmSacramentos dtProbSalud dtAlumno dtAlumnoMatricula"
                                      oncomplete="confirmFunction(1);"
                                      process="@this">  
                        <f:setPropertyActionListener value="#{varAlumno}" target="#{inscripcionBean.selectedAlumno}" />
                    </p:commandButton>   
                </p:column>
            </p:dataTable>
            <p:fieldset legend="Estado de Vida"> 
                <h:panelGrid columns="3" id="frmEstadoCivilPadres"> 
                    <h:outputText value="Elija una Opción:"/>
                    <h:selectOneMenu id="cboEstadoPadres"
                                     value="#{inscripcionBean.padre.vcEstadoCivil}"
                                     required="#{param['requireGroup1'] == '1'}">
                        <f:selectItem itemLabel="-Seleccione una Opción-" value="#{null}" />
                        <f:selectItem itemLabel="Matrimonio Civil-Religioso" itemValue="MCR" />
                        <f:selectItem itemLabel="Matrimonio Civil" itemValue="MC"/>
                        <f:selectItem itemLabel="Acompañados" itemValue="A"/>
                        <f:selectItem itemLabel="Separados" itemValue="S"/>
                    </h:selectOneMenu>
                    <p:message for="cboEstadoPadres" display="icon"/>                            
                    <h:outputText/>
                </h:panelGrid>
            </p:fieldset> 

            <p:fieldset legend="Datos del Padre" >  
                <h:panelGrid columns="7" id="frmPadre" >
                    <h:outputText value="Nombre: "/>
                    <p:autoComplete id="txtNombrePadre"
                                    selectListener="#{inscripcionBean.onSelectNomPadre}" 
                                    onSelectUpdate="frmPadre" 
                                    completeMethod="#{autoCompleteBean.completeNombre}"
                                    value="#{inscripcionBean.buscarPadre}">
                        <f:attribute name="field" value="Femenino"/> <!-- Aqui es a la inversa en el AutoCompleteBean
                                                                           la condicion es vcSexo != field -->

                        <f:attribute name="tipoPersona" value="Padre"/>
                    </p:autoComplete>
                    <p:commandButton id="cmdLimpiarPadre" 
                                     value="Limpiar" 
                                     process="@this frmPadre" 
                                     action="#{inscripcionBean.limpiarFrmPadres}"
                                     update="frmPadre frmResponsable frmMadre">
                        <f:attribute name="limpiar" value="limpiarPadre"/>
                    </p:commandButton>
                    <h:outputText />

                    <h:outputText />
                    <h:outputText />
                    <h:outputText />

                    <h:outputText value="Nombre del Padre:"/>
                    <p:inputText id="txtNomPadre"
                                 value="#{inscripcionBean.personaPadre.vcNombres}"
                                 required="#{param['requireGroup1'] == '1'}"/>
                    <p:message for="txtNomPadre" display="icon" />
                    <h:outputText/>

                    <h:outputText value="Profesión u Oficio:"/>
                    <p:inputText id="txtProfesionPadre"
                                 value="#{inscripcionBean.personaPadre.vcProfesion}"/>
                    <p:message for="txtProfesionPadre" display="icon"/>

                    <h:outputText value="Apellidos:"/>
                    <p:inputText id="txtApelPadre"
                                 value="#{inscripcionBean.personaPadre.vcApellidos}"
                                 required="#{param['requireGroup1'] == '1'}"/>
                    <p:message for="txtApelPadre" display="icon"/>
                    <h:outputText/>

                    <h:outputText value="Lugar de Trabajo:"/>
                    <p:inputText id="txtLugTrabPadre" 
                                 value="#{inscripcionBean.lugarTrabPadre.vcNombreLugTrabajo}"/>
                    <p:message for="txtLugTrabPadre" display="icon"/>

                    <h:outputText value="Número de DUI:"/>
                    <p:inputMask id="txtNumDuiPadre" mask="99999999-9" 
                                 value="#{inscripcionBean.personaPadre.vcDui}"/>
                    <p:message for="txtNumDuiPadre" display="icon"/>
                    <h:outputText/>

                    <h:outputText value="Dirección de Trabajo:" />
                    <h:inputTextarea id="txtDirTrabPadre"
                                     rows="2"
                                     value="#{inscripcionBean.lugarTrabPadre.vcDireccion}"/>
                    <p:message for="txtDirTrabPadre" display="icon"/>

                    <h:outputText value="Teléfono Casa:"/>
                    <p:inputMask id="txtTelCasaPadre" mask="9999-9999" 
                                 value="#{inscripcionBean.personaPadre.vcTelefono}"/>
                    <p:message for="txtTelCasaPadre" display="icon"/>
                    <h:outputText/>

                    <h:outputText value="Teléfono Trabajo:"/>
                    <p:inputMask id="txtTelTrabajoPadre" mask="9999-9999"  
                                 value="#{inscripcionBean.lugarTrabPadre.vcTelefono}"/>
                    <p:message for="txtTelTrabajoPadre" display="icon"/>

                    <h:outputText value="Dirección Completa:" />
                    <h:inputTextarea id="txtDireccionPadre"
                                     rows="2"
                                     value="#{inscripcionBean.personaPadre.vcDireccion}"
                                     required="#{param['requireGroup1'] == '1'}"/>
                    <p:message for="txtDireccionPadre" display="icon"/>
                </h:panelGrid>
            </p:fieldset>

            <p:fieldset legend="Datos de la Madre" >
                <h:panelGrid columns="7" id="frmMadre" >
                    <h:outputText value="Nombre: "/>
                    <p:autoComplete id="txtNombreMadre"
                                    selectListener="#{inscripcionBean.onSelectNomPadre}" 
                                    onSelectUpdate="frmMadre" 
                                    completeMethod="#{autoCompleteBean.completeNombre}"
                                    value="#{inscripcionBean.buscarMadre}">
                        <f:attribute name="field" value="Masculino"/> <!-- Aqui es a la inversa en el AutoCompleteBean
                                                                           la condicion es vcSexo != field -->
                        <f:attribute name="tipoPersona" value="Madre"/>
                    </p:autoComplete>
                    <p:commandButton id="cmdLimpiarMadre" 
                                     value="Limpiar" 
                                     action="#{inscripcionBean.limpiarFrmPadres}"
                                     process="@this frmMadre" 
                                     update="frmMadre frmResponsable">
                        <f:attribute name="limpiar" value="limpiarMadre"/>
                    </p:commandButton>
                    <h:outputText />

                    <h:outputText />
                    <h:outputText />
                    <h:outputText />                           

                    <h:outputText value="Nombre de la Madre:"/>
                    <p:inputText id="txtNomMadre"
                                 value="#{inscripcionBean.personaMadre.vcNombres}"
                                 required="#{param['requireGroup1'] == '1'}"/>
                    <p:message for="txtNomMadre" display="icon"/>
                    <h:outputText />

                    <h:outputText value="Usar mismos datos:"/>
                    <h:selectBooleanCheckbox id="chkMismosDatosPadre"
                                             value="#{inscripcionBean.datosIguales}"
                                             onchange="onCheckMismosDatosPadre()"/>
                    <h:outputText/>

                    <h:outputText value="Apellidos:"/>
                    <p:inputText id="txtApelMadre"
                                 value="#{inscripcionBean.personaMadre.vcApellidos}"
                                 required="#{param['requireGroup1'] == '1'}"/>
                    <p:message for="txtApelMadre" display="icon"/>
                    <h:outputText/>

                    <h:outputText value="Profesión u Oficio:"/>
                    <p:inputText id="txtProfesionMadre"
                                 value="#{inscripcionBean.personaMadre.vcProfesion}"/>
                    <p:message for="txtProfesionMadre" display="icon"/>

                    <h:outputText value="Número de DUI:"/>
                    <p:inputMask id="txtNumDuiMadre"  mask="99999999-9" 
                                 value="#{inscripcionBean.personaMadre.vcDui}"/>
                    <p:message for="txtNumDuiMadre" display="icon"/>
                    <h:outputText/>

                    <h:outputText value="Lugar de Trabajo:"/>
                    <p:inputText id="txtLugTrabMadre" 
                                 value="#{inscripcionBean.lugarTrabMadre.vcNombreLugTrabajo}"/>
                    <p:message for="txtLugTrabMadre" display="icon"/>

                    <h:outputText value="Teléfono Casa:"/>
                    <p:inputMask id="txtTelCasaMadre" mask="9999-9999" 
                                 value="#{inscripcionBean.personaMadre.vcTelefono}"/>
                    <p:message for="txtTelCasaMadre" display="icon"/>
                    <h:outputText/>

                    <h:outputText value="Dirección de Trabajo:" />
                    <h:inputTextarea id="txtDirTrabMadre"
                                     rows="2"
                                     value="#{inscripcionBean.lugarTrabMadre.vcDireccion}"/>
                    <p:message for="txtDirTrabMadre" display="icon"/>

                    <h:outputText value="Dirección Completa:" />
                    <h:inputTextarea id="txtDireccionMadre"
                                     rows="2"
                                     value="#{inscripcionBean.personaMadre.vcDireccion}"
                                     required="#{param['requireGroup1'] == '1'}"/>
                    <p:message for="txtDireccionMadre" display="icon"/>           
                    <h:outputText/>

                    <h:outputText value="Teléfono Trabajo:"/>
                    <p:inputMask id="txtTelTrabajoMadre" mask="9999-9999" 
                                 value="#{inscripcionBean.lugarTrabMadre.vcTelefono}"/>
                    <p:message for="txtTelTrabajoMadre" display="icon"/>
                </h:panelGrid>
            </p:fieldset>
            <h:panelGrid style="width: 100%">
                <p:toolbar>
                    <p:toolbarGroup align="left"> 
                        <h:panelGrid id="msgValidator" columns="3">
                            <p:commandButton value="Guardar" 
                                             oncomplete="confirmFunction(7);" 
                                             process="@this frmLsitaAlumnos msgValidator dtAlumno frmEstadoCivilPadres frmPadre frmMadre " 
                                             title="Guardar" 
                                             update="frmListaAlumnos msgValidator dtAlumno frmAlumno frmSacramentos dtProbSalud 
                                             frmEstadoCivilPadres frmPadre frmMadre msg"
                                             action="#{inscripcionBean.crear()}"
                                             image="ui-icon-disk">
                                <f:param name="requireGroup1" value="1"/>   
                            </p:commandButton>
                            <p:message for="txtAlumnoHide"/>
                            <p:inputText id="txtAlumnoHide" 
                                         style="display: none; ">
                                <f:validator disabled="#{param['requireGroup1'] != '1'}" 
                                             validatorId="alumnosValidator"/>
                            </p:inputText>
                        </h:panelGrid>
                    </p:toolbarGroup>
                </p:toolbar>
            </h:panelGrid>
        </p:panel>

        <p:outputPanel id="ingresoAlumnoDialogo">
            <p:dialog header="Ingrese los Datos" 
                      modal="true" 
                      widgetVar="agregarAlumno" 
                      minWidth="730" 
                      onHide="confirmFunction(4);"                                                     

                      visible="#{not empty facesContext.maximumSeverity}">
                <p:fieldset legend="Datos del Alumno" >
                    <h:panelGrid columns="2" id="frmAlumno" >
                        <h:panelGrid columns="3">
                            <h:outputText value="Nombres:"/>
                            <p:inputText id="txtNombres" 
                                         value="#{inscripcionBean.persona.vcNombres}"
                                         required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtNombres" display="icon" />
                            <h:outputText value="Apellidos:"/>
                            <p:inputText id="txtApellidos" 
                                         value="#{inscripcionBean.persona.vcApellidos}"
                                         required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtApellidos" display="icon"/>
                            <h:outputText value="Departamento:"/>
                            <h:selectOneMenu style="width:150px" id="cboDepartamento"
                                             value="#{inscripcionBean.selectedDepartamento}"
                                             onchange="onSelectDepartamento()"
                                             required="#{param['requireGroup5'] == '1'}">
                                <f:selectItem itemLabel="-Seleccione una Opción-" value="#{null}"/>
                                <f:selectItems value="#{inscripcionBean.cargarUbicaciones()}"/>
                            </h:selectOneMenu> 
                            <p:message for="cboDepartamento" display="icon" />
                            <h:outputText value="Lugar de Nacimiento:"/>
                            <h:selectOneMenu style="width:150px" id="cboLugarNacimiento"
                                             binding="#{cboUbicacion}"
                                             value="#{inscripcionBean.selectedUbicacion}"
                                             required="#{param['requireGroup5'] == '1'}">
                                <f:selectItem itemLabel="-Seleccione una Opción-" value="#{null}"/>
                                <f:selectItems value="#{inscripcionBean.listaUbicaciones}" />
                            </h:selectOneMenu> 
                            <p:message for="cboLugarNacimiento" display="icon" />
                            <h:outputText value="Fecha de Nacimiento:"/>                                                                                     
                            <p:calendar id="txtFecNacimiento" size="14"
                                        value="#{inscripcionBean.persona.daFecNacimiento}"
                                        showOn="button" 
                                        required="#{param['requireGroup5'] == '1'}"
                                        locale="es"
                                        navigator="true"
                                        pattern="dd/MM/yyyy" 
                                        readOnlyInputText="true" />
                            <p:message for="txtFecNacimiento" display="icon" />
                            <h:outputText value="Sexo:" />
                            <h:selectOneRadio id="optSexoAlumno"
                                              value="#{inscripcionBean.persona.vcSexo}"
                                              required="#{param['requireGroup5'] == '1'}">
                                <f:selectItem itemLabel="M" itemValue="Masculino"/>
                                <f:selectItem itemLabel="F" itemValue="Femenino"/>
                            </h:selectOneRadio>
                            <p:message for="optSexoAlumno" display="icon"/>
                        </h:panelGrid>
                        <h:panelGrid columns="3">
                            <h:outputText value="NIE del Alumno:"/>
                            <p:spinner id="txtNumNie" size="12" 
                                       value="#{inscripcionBean.alumno.nuNie}"
                                       min="000000000001"
                                       max="999999999999"
                                       stepFactor="1"
                                       required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtNumNie"/>


                            <h:outputText value="Número de Partida:"/>
                            <p:spinner id="txtNumPartida" size="12" 
                                       value="#{inscripcionBean.alumno.nuPartida}"
                                       min="00001"
                                       max="99999"
                                       stepFactor="1" 
                                       required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtNumPartida"/>



                            <h:outputText value="Número de Libro:"/>
                            <p:spinner id="txtNumLibro" size="12" 
                                       value="#{inscripcionBean.alumno.nuLibro}"
                                       min="00001"
                                       max="99999"
                                       stepFactor="1"
                                       required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtNumLibro"/>



                            <h:outputText value="Número de Folio:"/>
                            <p:spinner id="txtNumFolio" size="12" 
                                       value="#{inscripcionBean.alumno.nuFolio}"
                                       min="00001"
                                       max="99999"
                                       stepFactor="1"
                                       required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtNumFolio"/>
                            <h:outputText value="Año Libro:"/>
                            <p:spinner id="txtAnio" size="12" 
                                       value="#{inscripcionBean.alumno.nuAnioLibro}"
                                       min="1950"
                                       stepFactor="1"
                                       required="#{param['requireGroup5'] == '1'}"/>
                            <p:message for="txtAnio"/>
                            <h:outputText value="Procedencia:"/>
                            <p:autoComplete id="txtInstProcedencia"
                                            completeMethod="#{autoCompleteBean.completeInstitucion}"
                                            value="#{inscripcionBean.alumno.vcInstProcedencia}"
                                            title="Instituto de Procedencia"/>
                            <p:message for="txtInstProcedencia" display="icon" />
                        </h:panelGrid>  
                    </h:panelGrid>
                    <h:panelGrid columns="7" id="frmSacramentos" >
                        <h:outputText value="Sacramentos:" />
                        <h:selectBooleanCheckbox id="ckbBautismo"
                                                 value="#{inscripcionBean.bautismo}" />   
                        <h:outputText value="Bautismo"/>
                        <h:selectBooleanCheckbox id="ckbComunion" 
                                                 value="#{inscripcionBean.comunion}" />   
                        <h:outputText value="Comunión"/>
                        <h:selectBooleanCheckbox id="ckbConfirmacion"
                                                 value="#{inscripcionBean.confirmacion}" />   
                        <h:outputText value="Confirmación"/>
                    </h:panelGrid>
                </p:fieldset>

                <p:fieldset legend="Otros Datos" >
                    <h:panelGrid columns="4" id="frmProbSalud" >
                        <h:outputText value="Problemas de Salud:" />
                        <p:inputText id="txtProbSalud" 
                                     value="#{inscripcionBean.problemaSalud.vcDescripcion}"
                                     required="#{param['requireGroup4'] == '1'}"/>

                        <p:commandLink id="cmdProbSalud" 
                                       value="Agregar" 
                                       action="#{inscripcionBean.addProblema}"
                                       process="@this frmProbSalud"
                                       update="frmProbSalud dtProbSalud">
                            <f:param name="requireGroup4" value="1"/>
                        </p:commandLink>
                        <p:message for="txtProbSalud" display="icon" />
                    </h:panelGrid>         

                    <p:dataTable var="varProbSalud"
                                 id="dtProbSalud" 
                                 widgetVar="dtProbSalud"                                        
                                 value="#{inscripcionBean.problemasDeSalud}">

                        <p:column style="text-align: center" headerText="Problema de Salud">
                            <h:outputText value="#{varProbSalud.vcDescripcion}"/>
                        </p:column> 

                        <p:column style="text-align: center; width: 75px;" headerText="Acciones" >  
                            <f:facet name="header"/>
                            <p:commandButton  image="ui-icon-trash"
                                              title="Eliminar Problema de Salud"
                                              action="#{inscripcionBean.removeProblema}"
                                              oncomplete="confirmFunction(0);"
                                              update="frmProbSalud dtProbSalud"
                                              process="@this"> 
                                <f:setPropertyActionListener target="#{inscripcionBean.selectedProblema}"
                                                             value="#{varProbSalud}"/>
                            </p:commandButton> 
                        </p:column>
                    </p:dataTable>    
                </p:fieldset>
                <h:panelGrid styleClass="columnRight" >
                    <p:commandButton value="Aceptar" 
                                     image="ui-icon ui-icon-circle-check"
                                     action="#{inscripcionBean.addAlumno()}"
                                     process="@this frmAlumno frmSacramentos"
                                     update="frmAlumno frmSacramentos dtProSalud dtAlumno dtAlumnoMatricula ingresoAlumnoDialogo" >
                        <f:param name="requireGroup5" value="1"/>
                        <f:setPropertyActionListener value="#{cboUbicacion.value}" target="#{inscripcionBean.tempUbicacion}" />

                    </p:commandButton>
                </h:panelGrid>
            </p:dialog>
        </p:outputPanel>

        <p:remoteCommand name="onCheckMismosDatosPadre" process="@this frmMadre frmPadre chkMismosDatosPadre" 
                         update="frmMadre" action="#{inscripcionBean.onCheckMismosDatosPadre}"/>         
        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmProbSalud"
                         update="dtProbSalud"/>
        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmAlumnos"
                         update="dtAlumno dtAlumnoMatricula"/>
        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmModificar"
                         update="frmAlumno frmProbSalud frmSacramentos dtProbSalud"/>
        <p:remoteCommand name="onSelectDepartamento" process="@this cboDepartamento" 
                         update="cboLugarNacimiento" action="#{inscripcionBean.onSelectDepartamento}"/>
        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmCompromisos"
                         update="dtCompromisos"/>
        <p:commandButton style="visibility: hidden" widgetVar="updateConfirmModificarMatricula" update="frmMatricula dtCompromisos"/>
        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmGuardar"
                         update="msg dtProbSalud"/>
    </ui:define>
</ui:composition>
